<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%--分页条的展示练习  假设一共有10页--%>

<div id="page_nav">
    <c:if test="${requestScope.page.pageNo > 1}">
        <%--${requestScope.page.url}在前台是：client/clientBookServlet?action=page--%>
        <%--${requestScope.page.url}在后台台是：manager/bookServlet?action=page--%>
        <a href="${requestScope.page.url}&pageNo=1">首页</a>
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageNo-1}">上一页</a>
    </c:if>
    <%--页码输出的开始--%>
    <c:choose>
        <%-- 情况 1 ：如果总页码小于等于 5 的情况，页码的范围是： 1- 总页码 --%>
        <c:when test="${requestScope.page.pageTotal <=5}">
            <c:set var="begin" value="1"></c:set>
            <c:set var="end" value="${requestScope.page.pageTotal}"></c:set>
        </c:when>
        <%-- 情况 2 ：总页码大于 5 的情况 --%>
        <c:when test="${requestScope.page.pageTotal > 5}">

            <%-- 小情况 1 ：当前页码为前面 3 个： 1 ， 2 ， 3 的情况，页码范围是： 1-5.--%>
            <c:choose>
                <c:when test="${requestScope.page.pageNo <= 3}">
                    <%--默认保存在pageContext域中--%>
                    <c:set var="begin" value="1"></c:set>
                    <c:set var="end" value="5"></c:set>
                </c:when>
                <%-- 小情况 2 ：当前页码为最后 3 个， 8 ， 9 ， 10 ，页码范围是：总页码减 4 - 总页码 --%>
                <c:when test="${requestScope.page.pageNo >= requestScope.page.pageTotal - 4}">
                    <c:set var="begin" value="${requestScope.page.pageTotal - 4}"></c:set>
                    <c:set var="end" value="${requestScope.page.pageTotal}"></c:set>
                </c:when>
                <%-- 小情况 3 ： 4 ， 5 ， 6 ， 7 ，页码范围是：当前页码减 2 - 当前页码加 2--%>
                <c:otherwise>
                    <c:set var="begin" value="${requestScope.page.pageNo - 2}"></c:set>
                    <c:set var="end" value="${requestScope.page.pageNo + 2}"></c:set>
                </c:otherwise>
            </c:choose>
        </c:when>
    </c:choose>

    <%--forEach循环显示分页条--%>
    <c:forEach begin="${pageScope.begin}" end="${pageScope.end}" var="i">
        <c:if test="${i == requestScope.page.pageNo}">
            【${i}】
        </c:if>
        <c:if test="${i != requestScope.page.pageNo}">
            <a href="${requestScope.page.url}&pageNo=${i}">${i}</a>
        </c:if>
    </c:forEach>

    <%--页码输出的结束--%>
    <c:if test="${requestScope.page.pageNo < requestScope.page.pageTotal}">
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageNo+1}">下一页</a>
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageTotal}">末页</a>
    </c:if>
    共${requestScope.page.pageTotal}页，${requestScope.page.pageTotalCount}条记录
    到第<input value="${param.pageNo}" name="pn" id="pn_input"/>页
    <input type="button" value="确定">

    <script type="text/javascript">
        $(function () {
            $(":button").click(function () {
                var pageNo = $("#pn_input").val();
                var pageTotal = ${requestScope.page.pageTotal};

                if (pageNo <= 0) {
                    alert("对不起！您输入的页码错误，已自动为您跳转至首页！");
                }
                if (pageNo > pageTotal) {
                    alert("对不起！您输入的页码错误，已自动为您跳转至末页！");
                }

                location.href = "${pageScope.basePath}${requestScope.page.url}&pageNo=" + pageNo;
            })
        })
    </script>

</div>
